#include<stdio.h>
#include<string.h>
#define N 200010
#define K 1000000007

char str[N];

int main()
{
	scanf("%s",str);
	int len=strlen(str);
	long long sum=0;
	if(len%2==0)
	{
		for(int i=len/2,j=len/2-1;j>=0;j--,i++)
		{
			if(str[i]==str[j]&&str[i]=='?')
			{
				if(sum==0)
				{
					sum=1;
				}
				sum*=26;
			}
			else if(str[i]=='?'||str[j]=='?')
			{
				sum+=1;
			}
			else if(str[i]!=str[j])
			{
				sum=0;
				break;
			}
		}
	}
	else
	{
		int res=1;
		if(str[len/2]=='?')
		{
			sum=26;
		}
		for(int i=len/2,j=1;i-j>=0;j++)
		{
			if(str[i-j]==str[i+j]&&str[i-j]=='?')
			{
				if(sum==0)
				{
					sum=1;
				}
				sum*=26;
			}
			else if(str[i-j]=='?'||str[i+j]=='?')
			{
				sum+=1;
			}
			else if(str[i-j]!=str[i+j])
			{
				sum=0;
				break;
			}
		}
	}
	printf("%lld",sum%(K));
	return 0;
}
